home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / -seriously_amiga- / shareware / programming / c / c_lib / readme.gcc < prev    next >
Text File  |  1997-12-06  |  2KB  |  62 lines

  1. GNU/C (gcc) notes:
  2. ------------------
  3. [Stefan Fuchs <snfuchs@sokrates.franken.de> ]
  4.  
  5.  
  6. I have ported this source to gnu/c.
  7.  
  8. This source can only be compiled with gcc V2.7.2.1 and above
  9. as it requires explicit register specification, which was made
  10. available with this version for the first time.
  11.  
  12. As its implementation is not yet perfect, the source code must
  13. be modified to work with gcc (see below).
  14.  
  15. Some of this problems are announced to be fixed with gcc V2.8.0 .
  16.  
  17. The size of the executable is quite small (840 Bytes) compared to
  18. the SAS/C version (860 Bytes) and shows that gcc has become a very
  19. efficient compiler.
  20.  
  21.  
  22.  
  23. I made the following changes:
  24.  
  25. makefile.gcc:
  26.   added
  27.  
  28. compiler.h:
  29.   In order to compile with gcc the following changes must be made within
  30.   source and include files:
  31.   __asm must be converted to ASM, as __asm has a different meaning with gcc.
  32.   GNUCREG("xy") must be added after each parameter of each function, which
  33.   gets parameters in certain registers.
  34.  
  35. Startup.c:
  36.   Changed #include "samplefuncs.h"  to  #include "SampleFuncs.h"
  37.           as the gcc precompiler is case-sensitive with filenames
  38.   gcc can not handle relative pathnames, so when compiling with gcc, the
  39.           pathname of examplebase.h is specified within the makefile
  40.   __asm replaced by ASM
  41.   GNUCREG("xy") added
  42.   all references to struct SegList * replaced by APTR as this structure is
  43.           nowhere declared and gcc does not like this.
  44.   __saveds removed for LibStart() and ExtFuncLib(), as these do not access
  45.           any global data. This should save some bytes on all compilers.
  46.  
  47. SampleFuncs.h:
  48.   __asm replaced by ASM
  49.   GNUCREG("xy") added
  50.  
  51. LibInit.c:
  52.   gcc can not handle relative pathnames, so when compiling with gcc, the
  53.           pathname of examplebase.h is specified within the makefile
  54.  
  55. SampleFuncs.c:
  56.   __asm replaced by ASM
  57.   GNUCREG("xy") added
  58.  
  59.  
  60. Have fun.
  61.  
  62.